package com.hxkj.service;

import com.hxkj.domain.po.FunctionLibrary;
import com.hxkj.domain.po.FunctionLibraryTree;
import com.platform.common.domain.result.ResultMessageStruct;

import java.util.List;

/**
 * @ClassName FunctionLibraryService
 * @Description TODO
 * @Author Mr.zheng
 * @Date 2018/6/27 11:19
 * @Version 1.0
 */
public interface FunctionLibraryService {

    
    /**
    * @author Mr.zheng
    * @Description saveFunctionLibrary 新增功能
    * @Date 13:34 2018/6/27
    * @Param [functionLibrary]
    * @return com.platform.common.domain.result.ResultMessageStruct
    **/
    ResultMessageStruct saveFunctionLibrary(FunctionLibrary functionLibrary) throws Exception;

    /**
    * @author Mr.zheng
    * @Description modifyFunctionLibrary 修改功能
    * @Date 13:06 2018/6/27
    * @Param [functionLibrary]
    * @return com.platform.common.domain.result.ResultMessageStruct
    **/
    ResultMessageStruct modifyFunctionLibrary(FunctionLibrary functionLibrary) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getFunctionLibraryListTree 获取功能树
    * @Date 13:06 2018/6/27
    * @Param [functionLibrary]
    * @return com.hxkj.domain.po.FunctionLibraryTree
    **/
    List<FunctionLibraryTree> getFunctionLibraryListTree(FunctionLibrary functionLibrary) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getShowFunctionLibraryListTree 获取状态启用的功能树
    * @Date 13:06 2018/6/27
    * @Param [functionLibrary]
    * @return com.hxkj.domain.po.FunctionLibraryTree
    **/
    List<FunctionLibraryTree> getShowFunctionLibraryListTree(FunctionLibrary functionLibrary) throws Exception;

    /**
    * @author Mr.zheng
    * @Description removeFunctionLibrary 删除功能
    * @Date 13:06 2018/6/27
    * @Param [functionLibrary]
    * @return com.platform.common.domain.result.ResultMessageStruct
    **/
    ResultMessageStruct removeFunctionLibrary(FunctionLibrary functionLibrary) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getFunctionLibrary 根据ID获取功能
    * @Date 15:16 2018/6/27
    * @Param [functionLibrary]
    * @return com.hxkj.domain.po.FunctionLibrary
    **/
    void functionToSite(FunctionLibrary functionLibrary) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getFunctionLibraryListTreeByKeyword 关键字搜索获取功能树
    * @Date 16:04 2018/7/5
    * @Param [functionLibrary]
    * @return java.util.List<com.hxkj.domain.po.FunctionLibraryTree>
    **/
    List<FunctionLibraryTree> getFunctionLibraryListTreeByKeyword(FunctionLibrary functionLibrary) throws Exception;
}
